package com.raise.drive.model.service;

import com.raise.drive.model.search.*;
import com.raise.drive.model.domain.*;

import java.util.List;

/**
 * @author Eugene Rozov
 */
public interface SearchService {

    List<Answer> getAnswers(AnswerSearchRequest searchRequest);

    List<Question> getQuestions(QuestionSearchRequest searchRequest);

    List<Section> getSections(SectionSearchRequest searchRequest);

    List<Theme> getThemes(ThemeSearchRequest searchRequest);

    List<User> getUsers(UserSearchRequest searchRequest);

    List<Comment> getComments(CommentSearchRequest searchRequest);

    int getAnswersCount(AnswerSearchRequest searchRequest);

    int getQuestionsCount(QuestionSearchRequest searchRequest);

    int getSectionsCount(SectionSearchRequest searchRequest);

    int getThemesCount(ThemeSearchRequest searchRequest);

    int getUsersCount(UserSearchRequest searchRequest);

    int getCommentsCount(CommentSearchRequest searchRequest);
}
